package com.by.auth;

import org.apache.shiro.session.Session;
import org.apache.shiro.session.SessionListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 会话监听器
 * 用于监听会话创建、过期、停止事件
 * @author hsitung
 *
 * 如果只想监听一个事件可继承 SessionListenerAdapter
 *
 */
public class MySessionLinsterner implements SessionListener {
	private static final Logger log = LoggerFactory.getLogger(MySessionLinsterner.class);

	/**
	 *会话创建时触发
	 * @param session
	 */
	@Override
	public void onStart(Session session) {
		if(isDebugEnabled()) {
			log.debug("会话创建:{}", session.getId());
		}
	}

	/**
	 * 退出、会话过期时触发
	 * @param session
	 */
	@Override
	public void onStop(Session session) {
		if(isDebugEnabled()) {
			log.debug("会话停止:{}", session.getId());
		}

	}

	/**
	 * 会话过期时触发
	 * @param session
	 */
	@Override
	public void onExpiration(Session session) {
		if(isDebugEnabled()) {
			log.debug("会话过期:{}", session.getId());
		}
	}

	/**
	 * 判断当前是否为logdebug
	 * @return
	 */
	private boolean isDebugEnabled() {
		return log.isDebugEnabled();
	}
}
